/**
 * Copyright (C), 2001-2031, www.bosssof.com.cn
 * FileName: CacheService.java
 * Author: YuXingZh
 * Date: 28/5/2024 下午9:14
 * Description: 缓存服务类
 * History:
 * Date          Author   Version  Desc
 * 2024-01-01    bosssoft  1.0.0   initialize this file
 */

package com.bosssoft.g1.common.util.service;

import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;

/**
 * @className: CacheService
 * @description:
 * 解决什么问题：演示缓存的正确使用。
 * 主要方法和数据成员：
 * methodxx 使用 ThreadPoolExecutor 创建线程进行任务操作。
 * 注意事项：
 * 例如：该类需要从容器获取，不可以直接实例化。
 * @author: YuXingZh
 * @date: 28/5/2024 下午9:14
 * @since 1.0
 **/
@Service
public class CacheService {

    /**
     * 使用缓存获取指定ID的数据。
     *
     * @param id 数据的ID。
     * @return 缓存的数据。
     */
    @Cacheable(value = "myCache", key = "#id")
    public String getCachedData(int id) {
        // 这里可以是查询数据库或其他复杂操作
        return "Cached Data for id=" + id;
    }

    /**
     * 清除指定ID的数据缓存。
     *
     * @param id 需要清除缓存的数据ID。
     */
    @CacheEvict(value = "myCache", key = "#id")
    public void evictCache(int id) {
        // 从缓存中清除指定键的数据
    }
}
